package com.duobaoyu.dby.supply.biz.client.resource;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.duobaoyu.dby.resource.common.admin.dto.area.AreaListDTO;
import com.duobaoyu.dby.supply.biz.client.resource.bean.bo.AreaInfoBO;
import com.duobaoyu.dby.supply.biz.client.resource.bean.dto.*;
import com.duobaoyu.dby.supply.biz.client.resource.bean.vo.*;
import com.duobaoyu.dby.supply.core.task.bean.exporttask.ExportParam;

import java.util.List;
import java.util.Map;

/**
 * @author liyang
 * @version 1.0.0
 * @ClassName ResourceAddressAdminClient
 * @Description 地址库管理Client
 * @createTime 11:19:00 2023/10/08
 */
public interface ResourceAddressAdminClient {

    List<AddressMappingVO> selectAreaList(AddressQueryDTO addressQuery);

    Page<AreaListVO> areaPage(AreaQueryListDTO areaQueryList);

    List<AreaVO> getChannelAreas(ChannelAreasDTO channelAreas);

    boolean bindAreas(AreaBindDTO areaBind);

    List<AreasBindDetailVO> areasBindDetail(AreasDetailDTO areasDetail);

    Map<String, String> getAreasMap(List<String> areaCodes);

    AreaInfoBO getChannelAddress(AreaInfoDTO areaInfo);

    AreaInfoBO getLocalAddress(AreaInfoDTO areaInfo);

    Long getAddressMatchingCount();

    Boolean updateSupplyAddressById(AddressEditDTO addressEdit);

    Boolean updateMapAreaCodeById(AddressEditDTO addressEdit);

    Boolean addressLibraryExport(ExportParam<AreaListDTO> param);

    Page<ChannelAddressVO> channelAddressPage(ChannelAddressQueryDTO channelAddress);
}
